package com.ruoyi.custom.domain;

import java.math.BigDecimal;
import java.util.List;

import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

/**
 * 商品对象 xking_store_product
 * 
 * @author ruoyi
 * @date 2022-08-12
 */
public class StoreProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 商品id */
    private Long id;

    /** 商户Id(0为总后台管理员创建,不为0的时候是商户后台创建) */
    @Excel(name = "商户Id(默认0,1为总后台管理员创建,其他是商户后台创建)")
    private String merId;

    /** 商品图片 */
    @Excel(name = "商品图片")
    private String image;

    /** 推荐图 */
    @Excel(name = "推荐图")
    private String recommendImage;

    /** 轮播图 */
    @Excel(name = "轮播图")
    private String sliderImage;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String storeName;

    /** 商品简介 */
    @Excel(name = "商品简介")
    private String storeInfo;

    /** 关键字 */
    @Excel(name = "关键字")
    private String keyword;

    /** 商品条码（一维码） */
    @Excel(name = "商品条码", readConverterExp = "一=维码")
    private String barCode;

    /** 分类id */
    @Excel(name = "分类id")
    private Integer cateId;

    /** 售价 */
    @Excel(name = "售价")
    private BigDecimal price;

    /** 会员价格 */
    @Excel(name = "会员价格")
    private BigDecimal vipPrice;

    /** 原价 */
    @Excel(name = "原价")
    private BigDecimal otPrice;

    /** 邮费 */
    @Excel(name = "邮费")
    private BigDecimal postage;

    /** 单位名 */
    @Excel(name = "单位名")
    private String unitName;

    /** 排序 */
    @Excel(name = "排序")
    private Long sort;

    /** 销量 */
    @Excel(name = "销量")
    private String sales;

    /** 库存 */
    @Excel(name = "库存")
    private String stock;

    /** 状态（0：未上架，1：上架） */
    @Excel(name = "状态", readConverterExp = "0=：未上架，1：上架")
    private Integer isShow;

    /** 是否热卖 */
    @Excel(name = "是否热卖")
    private Integer isHot;

    /** 是否优惠 */
    @Excel(name = "是否优惠")
    private Integer isBenefit;

    /** 是否精品 */
    @Excel(name = "是否精品")
    private Integer isBest;

    /** 是否新品 */
    @Excel(name = "是否新品")
    private Integer isNew;

    /** 商品是否是虚拟商品 */
    @Excel(name = "商品是否是虚拟商品")
    private Integer isVirtual;

    /** 虚拟商品类型 */
    @Excel(name = "虚拟商品类型")
    private Integer virtualType;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private String isDel;

    /** 商户是否代理 0不可代理1可代理 */
    @Excel(name = "商户是否代理 0不可代理1可代理")
    private String merUse;

    /** 获得积分 */
    @Excel(name = "获得积分")
    private BigDecimal giveIntegral;

    /** 成本价 */
    @Excel(name = "成本价")
    private BigDecimal cost;

    /** 秒杀状态 0 未开启 1已开启 */
    @Excel(name = "秒杀状态 0 未开启 1已开启")
    private String isSeckill;

    /** 砍价状态 0未开启 1开启 */
    @Excel(name = "砍价状态 0未开启 1开启")
    private String isBargain;

    /** 是否优品推荐 */
    @Excel(name = "是否优品推荐")
    private Integer isGood;

    /** 是否单独分佣 */
    @Excel(name = "是否单独分佣")
    private Integer isSub;

    /** 是否开启会员价格 */
    @Excel(name = "是否开启会员价格")
    private Integer isVip;

    /** 虚拟销量 */
    @Excel(name = "虚拟销量")
    private Long ficti;

    /** 浏览量 */
    @Excel(name = "浏览量")
    private Long browse;

    /** 商品二维码地址(用户小程序海报) */
    @Excel(name = "商品二维码地址(用户小程序海报)")
    private String codePath;

    /** 淘宝京东1688类型 */
    @Excel(name = "淘宝京东1688类型")
    private String soureLink;

    /** 主图视频链接 */
    @Excel(name = "主图视频链接")
    private String videoLink;

    /** 运费模板ID */
    @Excel(name = "运费模板ID")
    private Long tempId;

    /** 规格 0单 1多 */
    @Excel(name = "规格 0单 1多")
    private Integer specType;

    /** 活动显示排序1=秒杀，2=砍价，3=拼团 */
    @Excel(name = "活动显示排序1=秒杀，2=砍价，3=拼团")
    private String activity;

    /** 商品SPU */
    @Excel(name = "商品SPU")
    private String spu;

    /** 标签ID */
    @Excel(name = "标签ID")
    private String labelId;

    /** 复制口令 */
    @Excel(name = "复制口令")
    private String commandWord;

    /** 推荐商品id */
    @Excel(name = "推荐商品id")
    private String recommendList;

    /** 是否会员专属商品 */
    @Excel(name = "是否会员专属商品")
    private Integer vipProduct;

    /** 是否预售商品 */
    @Excel(name = "是否预售商品")
    private Integer presale;

    /** 预售开始时间 */
    @Excel(name = "预售开始时间")
    private Long presaleStartTime;

    /** 预售结束时间 */
    @Excel(name = "预售结束时间")
    private Long presaleEndTime;

    /** 预售结束后几天内发货 */
    @Excel(name = "预售结束后几天内发货")
    private Long presaleDay;

    /** 物流方式 */
    @Excel(name = "物流方式")
    private String logistics;

    /** 自定义表单 */
    @Excel(name = "自定义表单")
    private String customForm;

    /** 快递0关闭1开启 */
    @Excel(name = "快递0关闭1开启")
    private Long express;

    /** 运费金额 */
    @Excel(name = "运费金额")
    private BigDecimal freightAmount;

    /** 核销0关闭1开启 */
    @Excel(name = "核销0关闭1开启")
    private Long hexiao;

    /** 运费设置0包邮1运费 */
    @Excel(name = "运费设置0包邮1运费")
    private Long fare;

    /** 是否开启积分购买或抵扣0关闭1开启 */
    @Excel(name = "是否开启积分购买或抵扣0关闭1开启")
    private Long jf;

    /** 店名 */
    @Excel(name = "店名")
    private String shopName;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 电话 */
    @Excel(name = "电话")
    private String phone;

    /** 商品详情 */
    @Excel(name = "商品详情")
    private String details;


    @Transient
    private String tableData;

    @Transient
    private String delTableDataUniqueValueList;

    @Transient
    private List<StoreProductAttrValue> storeProductAttrValueList;

    public List<StoreProductAttrValue> getStoreProductAttrValueList() {
        return storeProductAttrValueList;
    }

    public void setStoreProductAttrValueList(List<StoreProductAttrValue> storeProductAttrValueList) {
        this.storeProductAttrValueList = storeProductAttrValueList;
    }

    public String getDelTableDataUniqueValueList() {
        return delTableDataUniqueValueList;
    }

    public void setDelTableDataUniqueValueList(String delTableDataUniqueValueList) {
        this.delTableDataUniqueValueList = delTableDataUniqueValueList;
    }

    public String getTableData() {
        return tableData;
    }

    public void setTableData(String tableData) {
        this.tableData = tableData;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setMerId(String merId) 
    {
        this.merId = merId;
    }

    public String getMerId() 
    {
        return merId;
    }
    public void setImage(String image) 
    {
        this.image = image;
    }

    public String getImage() 
    {
        return image;
    }
    public void setRecommendImage(String recommendImage) 
    {
        this.recommendImage = recommendImage;
    }

    public String getRecommendImage() 
    {
        return recommendImage;
    }
    public void setSliderImage(String sliderImage) 
    {
        this.sliderImage = sliderImage;
    }

    public String getSliderImage() 
    {
        return sliderImage;
    }
    public void setStoreName(String storeName) 
    {
        this.storeName = storeName;
    }

    public String getStoreName() 
    {
        return storeName;
    }
    public void setStoreInfo(String storeInfo) 
    {
        this.storeInfo = storeInfo;
    }

    public String getStoreInfo() 
    {
        return storeInfo;
    }
    public void setKeyword(String keyword) 
    {
        this.keyword = keyword;
    }

    public String getKeyword() 
    {
        return keyword;
    }
    public void setBarCode(String barCode) 
    {
        this.barCode = barCode;
    }

    public String getBarCode() 
    {
        return barCode;
    }

    public Integer getCateId() {
        return cateId;
    }

    public void setCateId(Integer cateId) {
        this.cateId = cateId;
    }

    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setVipPrice(BigDecimal vipPrice) 
    {
        this.vipPrice = vipPrice;
    }

    public BigDecimal getVipPrice() 
    {
        return vipPrice;
    }
    public void setOtPrice(BigDecimal otPrice) 
    {
        this.otPrice = otPrice;
    }

    public BigDecimal getOtPrice() 
    {
        return otPrice;
    }
    public void setPostage(BigDecimal postage) 
    {
        this.postage = postage;
    }

    public BigDecimal getPostage() 
    {
        return postage;
    }
    public void setUnitName(String unitName) 
    {
        this.unitName = unitName;
    }

    public String getUnitName() 
    {
        return unitName;
    }
    public void setSort(Long sort) 
    {
        this.sort = sort;
    }

    public Long getSort() 
    {
        return sort;
    }
    public void setSales(String sales) 
    {
        this.sales = sales;
    }

    public String getSales() 
    {
        return sales;
    }
    public void setStock(String stock) 
    {
        this.stock = stock;
    }

    public String getStock() 
    {
        return stock;
    }
    public void setIsShow(Integer isShow) 
    {
        this.isShow = isShow;
    }

    public Integer getIsShow() 
    {
        return isShow;
    }
    public void setIsHot(Integer isHot) 
    {
        this.isHot = isHot;
    }

    public Integer getIsHot() 
    {
        return isHot;
    }
    public void setIsBenefit(Integer isBenefit) 
    {
        this.isBenefit = isBenefit;
    }

    public Integer getIsBenefit() 
    {
        return isBenefit;
    }
    public void setIsBest(Integer isBest) 
    {
        this.isBest = isBest;
    }

    public Integer getIsBest() 
    {
        return isBest;
    }
    public void setIsNew(Integer isNew) 
    {
        this.isNew = isNew;
    }

    public Integer getIsNew() 
    {
        return isNew;
    }
    public void setIsVirtual(Integer isVirtual) 
    {
        this.isVirtual = isVirtual;
    }

    public Integer getIsVirtual() 
    {
        return isVirtual;
    }
    public void setVirtualType(Integer virtualType) 
    {
        this.virtualType = virtualType;
    }

    public Integer getVirtualType() 
    {
        return virtualType;
    }
    public void setIsDel(String isDel) 
    {
        this.isDel = isDel;
    }

    public String getIsDel() 
    {
        return isDel;
    }
    public void setMerUse(String merUse) 
    {
        this.merUse = merUse;
    }

    public String getMerUse() 
    {
        return merUse;
    }
    public void setGiveIntegral(BigDecimal giveIntegral) 
    {
        this.giveIntegral = giveIntegral;
    }

    public BigDecimal getGiveIntegral() 
    {
        return giveIntegral;
    }
    public void setCost(BigDecimal cost) 
    {
        this.cost = cost;
    }

    public BigDecimal getCost() 
    {
        return cost;
    }
    public void setIsSeckill(String isSeckill) 
    {
        this.isSeckill = isSeckill;
    }

    public String getIsSeckill() 
    {
        return isSeckill;
    }
    public void setIsBargain(String isBargain) 
    {
        this.isBargain = isBargain;
    }

    public String getIsBargain() 
    {
        return isBargain;
    }
    public void setIsGood(Integer isGood) 
    {
        this.isGood = isGood;
    }

    public Integer getIsGood() 
    {
        return isGood;
    }
    public void setIsSub(Integer isSub) 
    {
        this.isSub = isSub;
    }

    public Integer getIsSub() 
    {
        return isSub;
    }
    public void setIsVip(Integer isVip) 
    {
        this.isVip = isVip;
    }

    public Integer getIsVip() 
    {
        return isVip;
    }
    public void setFicti(Long ficti) 
    {
        this.ficti = ficti;
    }

    public Long getFicti() 
    {
        return ficti;
    }
    public void setBrowse(Long browse) 
    {
        this.browse = browse;
    }

    public Long getBrowse() 
    {
        return browse;
    }
    public void setCodePath(String codePath) 
    {
        this.codePath = codePath;
    }

    public String getCodePath() 
    {
        return codePath;
    }
    public void setSoureLink(String soureLink) 
    {
        this.soureLink = soureLink;
    }

    public String getSoureLink() 
    {
        return soureLink;
    }
    public void setVideoLink(String videoLink) 
    {
        this.videoLink = videoLink;
    }

    public String getVideoLink() 
    {
        return videoLink;
    }
    public void setTempId(Long tempId) 
    {
        this.tempId = tempId;
    }

    public Long getTempId() 
    {
        return tempId;
    }
    public void setSpecType(Integer specType) 
    {
        this.specType = specType;
    }

    public Integer getSpecType() 
    {
        return specType;
    }
    public void setActivity(String activity) 
    {
        this.activity = activity;
    }

    public String getActivity() 
    {
        return activity;
    }
    public void setSpu(String spu) 
    {
        this.spu = spu;
    }

    public String getSpu() 
    {
        return spu;
    }
    public void setLabelId(String labelId) 
    {
        this.labelId = labelId;
    }

    public String getLabelId() 
    {
        return labelId;
    }
    public void setCommandWord(String commandWord) 
    {
        this.commandWord = commandWord;
    }

    public String getCommandWord() 
    {
        return commandWord;
    }
    public void setRecommendList(String recommendList) 
    {
        this.recommendList = recommendList;
    }

    public String getRecommendList() 
    {
        return recommendList;
    }
    public void setVipProduct(Integer vipProduct) 
    {
        this.vipProduct = vipProduct;
    }

    public Integer getVipProduct() 
    {
        return vipProduct;
    }
    public void setPresale(Integer presale) 
    {
        this.presale = presale;
    }

    public Integer getPresale() 
    {
        return presale;
    }
    public void setPresaleStartTime(Long presaleStartTime) 
    {
        this.presaleStartTime = presaleStartTime;
    }

    public Long getPresaleStartTime() 
    {
        return presaleStartTime;
    }
    public void setPresaleEndTime(Long presaleEndTime) 
    {
        this.presaleEndTime = presaleEndTime;
    }

    public Long getPresaleEndTime() 
    {
        return presaleEndTime;
    }
    public void setPresaleDay(Long presaleDay) 
    {
        this.presaleDay = presaleDay;
    }

    public Long getPresaleDay() 
    {
        return presaleDay;
    }
    public void setLogistics(String logistics) 
    {
        this.logistics = logistics;
    }

    public String getLogistics() 
    {
        return logistics;
    }
    public void setCustomForm(String customForm) 
    {
        this.customForm = customForm;
    }

    public String getCustomForm() 
    {
        return customForm;
    }

    public void setExpress(Long express)
    {
        this.express = express;
    }

    public Long getExpress() 
    {
        return express;
    }
    public void setFreightAmount(BigDecimal freightAmount) 
    {
        this.freightAmount = freightAmount;
    }

    public BigDecimal getFreightAmount() 
    {
        return freightAmount;
    }
    public void setHexiao(Long hexiao) 
    {
        this.hexiao = hexiao;
    }

    public Long getHexiao() 
    {
        return hexiao;
    }
    public void setFare(Long fare) 
    {
        this.fare = fare;
    }

    public Long getFare() 
    {
        return fare;
    }
    public void setJf(Long jf) 
    {
        this.jf = jf;
    }

    public Long getJf() 
    {
        return jf;
    }
    public void setShopName(String shopName) 
    {
        this.shopName = shopName;
    }

    public String getShopName() 
    {
        return shopName;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setDetails(String details) 
    {
        this.details = details;
    }

    public String getDetails() 
    {
        return details;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("merId", getMerId())
            .append("image", getImage())
            .append("recommendImage", getRecommendImage())
            .append("sliderImage", getSliderImage())
            .append("storeName", getStoreName())
            .append("storeInfo", getStoreInfo())
            .append("keyword", getKeyword())
            .append("barCode", getBarCode())
            .append("cateId", getCateId())
            .append("price", getPrice())
            .append("vipPrice", getVipPrice())
            .append("otPrice", getOtPrice())
            .append("postage", getPostage())
            .append("unitName", getUnitName())
            .append("sort", getSort())
            .append("sales", getSales())
            .append("stock", getStock())
            .append("isShow", getIsShow())
            .append("isHot", getIsHot())
            .append("isBenefit", getIsBenefit())
            .append("isBest", getIsBest())
            .append("isNew", getIsNew())
            .append("isVirtual", getIsVirtual())
            .append("virtualType", getVirtualType())
            .append("isDel", getIsDel())
            .append("merUse", getMerUse())
            .append("giveIntegral", getGiveIntegral())
            .append("cost", getCost())
            .append("isSeckill", getIsSeckill())
            .append("isBargain", getIsBargain())
            .append("isGood", getIsGood())
            .append("isSub", getIsSub())
            .append("isVip", getIsVip())
            .append("ficti", getFicti())
            .append("browse", getBrowse())
            .append("codePath", getCodePath())
            .append("soureLink", getSoureLink())
            .append("videoLink", getVideoLink())
            .append("tempId", getTempId())
            .append("specType", getSpecType())
            .append("activity", getActivity())
            .append("spu", getSpu())
            .append("labelId", getLabelId())
            .append("commandWord", getCommandWord())
            .append("recommendList", getRecommendList())
            .append("vipProduct", getVipProduct())
            .append("presale", getPresale())
            .append("presaleStartTime", getPresaleStartTime())
            .append("presaleEndTime", getPresaleEndTime())
            .append("presaleDay", getPresaleDay())
            .append("logistics", getLogistics())
            .append("customForm", getCustomForm())
            .append("express", getExpress())
            .append("freightAmount", getFreightAmount())
            .append("hexiao", getHexiao())
            .append("fare", getFare())
            .append("jf", getJf())
            .append("shopName", getShopName())
            .append("address", getAddress())
            .append("phone", getPhone())
            .append("details", getDetails())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
